In certain systems, error reporting to a host computer by a device may be performed by device hardware. For example, the device hardware may expose the error type and the severity using peripheral component interconnect (PCI) express and advanced error reporting (AER) capabilities. However, such error reporting by the device hardware may not provide flexibility or scalability. For example, any changes in the device for feature upgrades, bug fixes, etc. may require a re-spin of the device hardware and may come at the cost of additional time and money.